/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sv.com.intesal.compra.sql;

/**
 *
 * @author Jerez
 */
public class SQLMaterial {

    /* Material Mantenimientos*/
    public static final String BuscarMaterial = "SELECT m.id_m ,m.id_su,m.id_um, m.nombre_m, m.descripcion_m, sc.nombre_su, um.nombre_um, ms.maximo_ms, ms.minimo_ms, ms.ubicacion_ms, ms.costo_ms, s.nombre_s FROM sucursal as s, unidad_medicion  as um, sub_categoria as sc, material m, material_sucursal as ms WHERE s.codigo_s=ms.codigo_s AND um.id_um = m.id_um AND sc.id_su = m.id_su AND ms.id_m= m.id_m order by m.nombre_m ";
    public static final String GetFirstIdCombo = "SELECT id_cat FROM CATEGORIA order by nombre_cat";
    public static final String ComboSubMaterial = "SELECT sc.nombre_su, sc.id_su FROM categoria c, sub_categoria sc WHERE c.id_cat = sc.id_cat AND c.id_cat=? ";
    public static final String ComboUniMaterial = "SELECT id_um, nombre_um FROM unidad_medicion order by nombre_um";
    //public static final String InsertarMaterial = "INSERT INTO MATERIAL (id_su, id_um, nombre_m, precio_m, costo_m, descripcion_m ) VALUES(?,?,?,?,?,?)";
    public static final String InsertarMaterial = "INSERT INTO MATERIAL ( id_su, id_um, codigo_tm, codigo_m,  nombre_m, descripcion_m, codigo_barra_m, codigo_barra_original_m  ) VALUES(?,?,?,?,?,?,?,?)";
    public static final String ModificarMaterial = "UPDATE MATERIAL set id_su=?, id_um=?, codigo_tm=?, codigo_m=?, nombre_m=?, descripcion_m=?, codigo_barra_m=?, codigo_barra_original_m=? WHERE id_m=?";
    public static final String UltimoIdMaterial = "SELECT max(id_m) as id_m FROM MATERIAL";
    /* End of Material Mantenimientos*/
    public static final String InsetarDetaMaterial = "INSERT INTO material_sucursal (codigo_s, ubicacion_ms, costo_ms, minimo_ms, maximo_ms,id_m,cantidad_ms) VALUES (?,?,?,?,?,?,?)";
    public static final String updateDetaMaterial = "UPDATE material_sucursal set codigo_s=?,ubicacion_ms=?, costo_ms=?, minimo_ms=?, maximo_ms=? where id_dm=?";
    public static final String getMax = "SELECT max(id_m) as max FROM MATERIAL";
    /*Insetar detalle de Material*/
    /* end */

    /* Solicitud de materiales */
    // Old  //public static final String findMateriales = "SELECT m.id_m, m.nombre_m, dm.cantidad_dm as existencia, dm.id_dm , dm.id_b ,b.nombre_b  FROM material_sucursal as dm, material as m, sucursal as b WHERE m.id_m = dm.id_m AND b.id_b=dm.id_b ORDER BY b.nombre_b, m.nombre_m";
    public static final String findMateriales = "SELECT m.id_m, m.nombre_m, ms.cantidad_ms as existencia, ms.id_dm, ms.codigo_s ,b.nombre_s FROM material_sucursal as ms, material as m, sucursal as b WHERE m.id_m = ms.id_m AND b.codigo_s=ms.codigo_s ORDER BY b.nombre_s, m.nombre_m";
    /* put en detalle material bean */
    public static final String findDetalleMaterial = "SELECT id_m,id_b, cantidad_ cantidad_m FROM material_sucursal";
    /* End of Solicitud de materiales */
    public static final String superFindAllMateriales = "SELECT * FROM MATERIAL AS m,MATERIAL_SUCURSAL AS ms,SUCURSAL AS S,CATEGORIA AS cat, SUB_CATEGORIA as su,TIPO_MATERIAL as tm,MARCA AS mar, UNIDAD_MEDICION AS um where m.id_m=ms.id_m and s.codigo_s=ms.codigo_s and cat.id_cat=su.id_cat and su.id_su=m.id_su and tm.codigo_tm=m.codigo_tm and mar.codigo_m=m.codigo_m  and um.id_um=m.id_um order by s.nombre_s,cat.nombre_cat,su.nombre_su,m.nombre_m,m.codigo_barra_m ";
    public static final String getCantidadMaterial = "SELECT cantidad_ms FROM MATERIAL_SUCURSAL where id_dm=? ";
    /******************************************************************************************************************************/
    /*MODIFICAR COSTO DE MATERIAL. VALIDARLO*/
    public static final String getCostoMaterial = "SELECT costo_ms from material_sucursal where id_dm=?";
    public static final String validarCostoMaterial = "select count(id_dm) contar from material_sucursal where id_dm=? and costo_ms<?";
    public static final String modificarCostoMaterial = "UPDATE MATERIAL_SUCURSAL SET costo_ms=? where id_dm=?";
    /******************************************************************************************************************************/
    /*ALARMAS*/
    public static final String alarmaMaximo_Material = "select count(id_dm) contar from material_sucursal where id_dm=? and maximo_ms<=?";
    public static final String alarmaMinimo_Material = "select count(id_dm) contar from material_sucursal where id_dm=? and minimo_ms>=?";
    /******************************************************************************************************************************/

    /*MODIFICAR CANTIDAD*/
    public static final String modificarCantidad_Aumentar = "UPDATE MATERIAL_SUCURSAL SET cantidad_ms=cantidad_ms+? where id_m=?";
    public static final String modificarCantidad_Disminuir = "UPDATE MATERIAL_SUCURSAL SET cantidad_ms=cantidad_ms-? where id_m=?";
    public static final String modificarCantidad = "UPDATE MATERIAL_SUCURSAL SET cantidad_ms=? where id_dm=?";
    /******************************************************************************************************************************/
    /******************************************************************************************************************************/
    /*GET ALL PRODUCTOS CANTIDAD*/
    public static final String megaSuperFindAllMateriales = "SELECT m.id_m, m.id_um, m.id_su, m.codigo_tm, m.codigo_m, m.codigo_barra_m, m.codigo_barra_original_m , m.nombre_m, m.descripcion_m,ms.id_dm, ms.codigo_s , ms.costo_ms ,ms.maximo_ms, ms.minimo_ms, ms.ubicacion_ms, ms.cantidad_ms, ms.estado_ms,s.nombre_s,  s.direccion_s, s.fax_s,cat.id_cat, cat.nombre_cat,su.nombre_su, tm.nombre_tm, mar.nombre_m, um.nombre_um FROM MATERIAL AS m,MATERIAL_SUCURSAL AS ms,SUCURSAL AS s,CATEGORIA AS cat, SUB_CATEGORIA as su,TIPO_MATERIAL as tm,MARCA AS mar, UNIDAD_MEDICION AS um where m.id_m=ms.id_m and s.codigo_s=ms.codigo_s and cat.id_cat=su.id_cat and su.id_su=m.id_su and tm.codigo_tm=m.codigo_tm and mar.codigo_m=m.codigo_m  and um.id_um=m.id_um order by s.nombre_s,cat.nombre_cat,su.nombre_su,m.nombre_m,m.codigo_barra_m";
    public static final String getMaterialesActivo = "SELECT m.id_m, m.id_um, m.id_su, m.codigo_tm, m.codigo_m, m.codigo_barra_m, m.codigo_barra_original_m , m.nombre_m, m.descripcion_m,ms.id_dm, ms.codigo_s , ms.costo_ms ,ms.maximo_ms, ms.minimo_ms, ms.ubicacion_ms, ms.cantidad_ms, ms.estado_ms,s.nombre_s,  s.direccion_s, s.fax_s,cat.id_cat, cat.nombre_cat,su.nombre_su, tm.nombre_tm, mar.nombre_m, um.nombre_um FROM MATERIAL AS m,MATERIAL_SUCURSAL AS ms,SUCURSAL AS s,CATEGORIA AS cat, SUB_CATEGORIA as su,TIPO_MATERIAL as tm,MARCA AS mar, UNIDAD_MEDICION AS um where m.id_m=ms.id_m and s.codigo_s=ms.codigo_s and cat.id_cat=su.id_cat and su.id_su=m.id_su and tm.codigo_tm=m.codigo_tm and mar.codigo_m=m.codigo_m  and um.id_um=m.id_um and ms.estado_ms='A' order by s.nombre_s,cat.nombre_cat,su.nombre_su,m.nombre_m,m.codigo_barra_m";
    public static final String getMaterialesInactivo = "SELECT m.id_m, m.id_um, m.id_su, m.codigo_tm, m.codigo_m, m.codigo_barra_m, m.codigo_barra_original_m , m.nombre_m, m.descripcion_m,ms.id_dm, ms.codigo_s , ms.costo_ms ,ms.maximo_ms, ms.minimo_ms, ms.ubicacion_ms, ms.cantidad_ms, ms.estado_ms,s.nombre_s,  s.direccion_s, s.fax_s,cat.id_cat, cat.nombre_cat,su.nombre_su, tm.nombre_tm, mar.nombre_m, um.nombre_um FROM MATERIAL AS m,MATERIAL_SUCURSAL AS ms,SUCURSAL AS s,CATEGORIA AS cat, SUB_CATEGORIA as su,TIPO_MATERIAL as tm,MARCA AS mar, UNIDAD_MEDICION AS um where m.id_m=ms.id_m and s.codigo_s=ms.codigo_s and cat.id_cat=su.id_cat and su.id_su=m.id_su and tm.codigo_tm=m.codigo_tm and mar.codigo_m=m.codigo_m  and um.id_um=m.id_um and ms.estado_ms='I' order by s.nombre_s,cat.nombre_cat,su.nombre_su,m.nombre_m,m.codigo_barra_m";
    public static final String getMaterialActivo_x_Codigo = "SELECT m.id_m, m.id_um, m.id_su, m.codigo_tm, m.codigo_m, m.codigo_barra_m, m.codigo_barra_original_m , m.nombre_m, m.descripcion_m,ms.id_dm, ms.codigo_s , ms.costo_ms ,ms.maximo_ms, ms.minimo_ms, ms.ubicacion_ms, ms.cantidad_ms, ms.estado_ms,s.nombre_s,  s.direccion_s, s.fax_s,cat.id_cat, cat.nombre_cat,su.nombre_su, tm.nombre_tm, mar.nombre_m, um.nombre_um FROM MATERIAL AS m,MATERIAL_SUCURSAL AS ms,SUCURSAL AS s,CATEGORIA AS cat, SUB_CATEGORIA as su,TIPO_MATERIAL as tm,MARCA AS mar, UNIDAD_MEDICION AS um where m.id_m=ms.id_m and s.codigo_s=ms.codigo_s and cat.id_cat=su.id_cat and su.id_su=m.id_su and tm.codigo_tm=m.codigo_tm and mar.codigo_m=m.codigo_m  and um.id_um=m.id_um and ms.id_dm=? order by s.nombre_s,cat.nombre_cat,su.nombre_su,m.nombre_m,m.codigo_barra_m";
    /******************************************************************************************************************************/
    /******************************************************************************************************************************/
    /*CONSULTA DE PRODUCTOS*/
    public static final String getMateriales_con_Producto_x_TipoMaterial = "SELECT m.id_m, m.id_um, m.id_su, m.codigo_tm, m.codigo_m, m.codigo_barra_m, m.codigo_barra_original_m , m.nombre_m, m.descripcion_m,ms.id_dm, ms.codigo_s , ms.costo_ms ,ms.maximo_ms, ms.minimo_ms, ms.ubicacion_ms, ms.cantidad_ms, ms.estado_ms,s.nombre_s,  s.direccion_s, s.fax_s,cat.id_cat, cat.nombre_cat,su.nombre_su, tm.nombre_tm, mar.nombre_m, um.nombre_um FROM MATERIAL AS m,MATERIAL_SUCURSAL AS ms,SUCURSAL AS s,CATEGORIA AS cat, SUB_CATEGORIA as su,TIPO_MATERIAL as tm,MARCA AS mar, UNIDAD_MEDICION AS um where m.id_m=ms.id_m and s.codigo_s=ms.codigo_s and cat.id_cat=su.id_cat and su.id_su=m.id_su and tm.codigo_tm=m.codigo_tm and mar.codigo_m=m.codigo_m  and um.id_um=m.id_um and tm.codigo_tm=? and m.nombre_m like ? order by s.nombre_s,cat.nombre_cat,su.nombre_su,m.nombre_m,m.codigo_barra_m";
    public static final String getMateriales_con_Producto_Todos = "SELECT m.id_m, m.id_um, m.id_su, m.codigo_tm, m.codigo_m, m.codigo_barra_m, m.codigo_barra_original_m , m.nombre_m, m.descripcion_m,ms.id_dm, ms.codigo_s , ms.costo_ms ,ms.maximo_ms, ms.minimo_ms, ms.ubicacion_ms, ms.cantidad_ms, ms.estado_ms,s.nombre_s,  s.direccion_s, s.fax_s,cat.id_cat, cat.nombre_cat,su.nombre_su, tm.nombre_tm, mar.nombre_m, um.nombre_um FROM MATERIAL AS m,MATERIAL_SUCURSAL AS ms,SUCURSAL AS s,CATEGORIA AS cat, SUB_CATEGORIA as su,TIPO_MATERIAL as tm,MARCA AS mar, UNIDAD_MEDICION AS um where m.id_m=ms.id_m and s.codigo_s=ms.codigo_s and cat.id_cat=su.id_cat and su.id_su=m.id_su and tm.codigo_tm=m.codigo_tm and mar.codigo_m=m.codigo_m  and um.id_um=m.id_um and m.nombre_m like ? order by s.nombre_s,cat.nombre_cat,su.nombre_su,m.nombre_m,m.codigo_barra_m";
    /******************************************************************************************************************************/

    public static final String insertMaterial_Sucursal =
            " insert into material_sucursal (codigo_s,id_m,maximo_ms,minimo_ms,costo_ms,ubicacion_ms,cantidad_ms,estado_ms) "
            + " select s.codigo_s,m.id_m, "
            + " ( select ms.maximo_ms from sucursal as su,material_sucursal as ms where ms.codigo_s=su.codigo_s and ms.id_m=m.id_m ) as maximo_ms, "
            + " ( select ms.minimo_ms from sucursal as su,material_sucursal as ms where ms.codigo_s=su.codigo_s and ms.id_m=m.id_m ) as minimo_ms, "
            + " ( select ms.costo_ms from sucursal as su,material_sucursal as ms where ms.codigo_s=su.codigo_s and ms.id_m=m.id_m ) as costo_ms, "
            + " ( select ms.ubicacion_ms from sucursal as su,material_sucursal as ms where ms.codigo_s=su.codigo_s and ms.id_m=m.id_m ) as ubicacion_ms, "
            + " 0 cantidad_ms, ( select ms.estado_ms from sucursal as su,material_sucursal as ms where ms.codigo_s=su.codigo_s and ms.id_m=m.id_m ) as estado_ms "
            + " from sucursal as s,material as m where codigo_s not in ( select codigo_s from material_sucursal as mas where  mas.codigo_s=s.codigo_s and mas.id_m=m.id_m) ";

    
    /*
    (CASE WHEN ms.estado_ms='A' THEN 'Activo' ELSE 'Inactivo' END) as estado_ms
    CASE WHEN a=1 THEN 'one'
    WHEN a=2 THEN 'two'
    ELSE 'other'
    END

     */
}
